package com.xbongbong.paas.pojo;

import com.xbongbong.paas.domain.entity.ext.PaasFormDataEntityExt;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import com.xbongbong.pro.form.pojo.TopPermissionsPoJo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

/**
 * 封装处理详情页按钮等需要的参数pojo
 * @author zcp
 * @version v1.0
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class HandelDetailPojo implements Serializable {
    private static final long serialVersionUID = -6579870314122284293L;

    /**
     * 业务类型
     */
    private Integer businessType;
    /**
     * 经销商标识
     */
    private Integer distributorMark;
    /**
     * 数据实体
     */
    private PaasFormDataEntityExt paasFormDataEntityExt;
    /**
     * 登录人
     */
    private UserVO loginUser;
    /**
     * 按钮pojoList
     */
    private List<ButtonPojo> buttonPojoList;

    /**
     * 详情关联新建 pojoList
     */
    private List<WorkFlowPojo> workFlowPojoList;

    /**
     * 详情tab pojoList
     */
    private List<DetailTabPojo> tabPojoList;

    /**
     * 移动端操作按钮 透传下
     */
    private List<TopPermissionsPoJo> topPermissionsPoJoList;

    public HandelDetailPojo(){
    }

    public HandelDetailPojo(Integer distributorMark, Integer businessType, PaasFormDataEntityExt paasFormDataEntityExt, UserVO loginUser){
        this.distributorMark = distributorMark;
        this.businessType = businessType;
        this.paasFormDataEntityExt = paasFormDataEntityExt;
        this.loginUser = loginUser;
    }

    public HandelDetailPojo(Integer distributorMark, Integer businessType, PaasFormDataEntityExt paasFormDataEntityExt, List<ButtonPojo> buttonPojoList, UserVO loginUser){
        this.distributorMark = distributorMark;
        this.businessType = businessType;
        this.paasFormDataEntityExt = paasFormDataEntityExt;
        this.buttonPojoList = buttonPojoList;
        this.loginUser = loginUser;
    }

    public HandelDetailPojo(Integer distributorMark, Integer businessType, PaasFormDataEntityExt paasFormDataEntityExt, UserVO loginUser, List<WorkFlowPojo> workFlowPojoList){
        this.distributorMark = distributorMark;
        this.businessType = businessType;
        this.paasFormDataEntityExt = paasFormDataEntityExt;
        this.loginUser = loginUser;
        this.workFlowPojoList = workFlowPojoList;
    }

    public HandelDetailPojo(Integer distributorMark, Integer businessType, UserVO loginUser, PaasFormDataEntityExt paasFormDataEntityExt, List<DetailTabPojo> tabPojoList){
        this.distributorMark = distributorMark;
        this.businessType = businessType;
        this.paasFormDataEntityExt = paasFormDataEntityExt;
        this.loginUser = loginUser;
        this.tabPojoList = tabPojoList;
    }
}
